<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>02.深浅拷贝.html</title>
</head>

<body>
    <script>
        /*
          1. 拷贝： 对象的复制
          2. 特点： 新的对象拥有原始对象所有的属性和方法 原始对象和新对象相互独立的
          3. 深浅拷贝: 
                浅拷贝： 只拷贝一层 
                深拷贝:  拷贝多层
         */
        const obj = {
            uname: 'blue',
            age: 18,
            hobby: ['乒乓球', '足球'],
            family: {
                baby: '小blue'
            }
        }

        function copy(obj,newObj) {
            for(let key in obj) {
                if(Array.isArray(obj[key]) ) {
                    newObj[key] = []
                    copy(obj[key], newObj[key])
                }else if(obj[key] instanceof Object) {
                    newObj[key] = {}
                    copy(obj[key], newObj[key])
                }else {
                    newObj[key] = obj[key];
                }  
            }
        }
        // copy(obj,newObj)
        // console.log(obj);
        // console.log(newObj);
        console.log("================================");
        // 深度拷贝
        /*
        对象 json
         对象2  字符串-- 对象 = 对象1 转为字符串 
        */
        function deepCopy(obj) {
            return JSON.parse(JSON.stringify(obj)) ;
        }
        let newObj = deepCopy(obj);
        console.log(obj);
        console.log(newObj);
    </script>

</body>

</html>